double vs extended
Otázka od: Kevin Macka
20. 11. 2002 14:26
dobry den,
prave resim problem nejakeho divneho zaokrouhlovani pri pouziti typu
real.
nasledujici kod se totiz dostane do stavu kdy po prevodu StrToFloat
je result <> 12.45. coz je ale nejake divne protoze v editu je prave
hodnota 12,45.
jak je to mozne?
ps: kdyz misto typu double pouziju extended tak je vse v poradku
function StrToFloatDef( s : string; default : double ) : double;
begin
if trim( s ) = '' then begin
result := default;
exit;
end;
try
result := StrToFloat( s );
if result <> 12.45 then
ShowMessage( 'result <> 12.45' );
except
result := default;
end;
end;
procedure TForm1.ButtonClick(Sender: TObject);
var r : double;
begin
Edit1.Text := '12,45';
r := StrToFloatDef( Edit1.Text, 0 );
ShowMessage( FloatToStr( r ) );
end;
Karel
______________________________________________________________________
Reklama:
Poctenicko pro kazdy den: http://www.novinky.cz
Odpovedá: Peter Surovy
20. 11. 2002 16:37
Mozno pisem blbost ale:
----- Original Message -----
From: "Kevin Macka" <Kevin.Macka@seznam.cz>
Sent: Wednesday, November 20, 2002 12:59 PM
> nasledujici kod se totiz dostane do stavu kdy po prevodu StrToFloat
> je result <> 12.45. coz je ale nejake divne protoze v editu je prave
> hodnota 12,45.
--- nebude problem tu? 12.45 <> 12,45 (ciarka a bodka)
PS